//app手机号一键登录

import api from '@/http/api.js'

// #ifdef APP-PLUS
//app
var clientInfo = plus.push.getClientInfo()
// #endif

export default {
	preLogin() { //一键登录=>预登录
		uni.preLogin({
			provider: 'univerify',
			success: () => { //预登录成功
				// 显示一键登录选项
				this.getOauth()
			},
			fail: (res) => { // 预登录失败
				// 不显示一键登录选项（或置灰）
				// 根据错误信息判断失败原因，如有需要可将错误提交给统计服务器
				uni.showToast({
					title: '请先打开数据网络或插入sim卡',
					duration: 2500,
					icon: 'none'
				});
			}
		})
	},
	getOauth() { //一键登录
		// var weixin = "/static/wxLogin.png"
		// if (uni.getSystemInfoSync().platform == 'ios') {
		// 	// APP端 两种登录方式
		// 	// 判断是否安装微信了
		// 	if (plus.runtime.isApplicationExist({
		// 			pname: 'com.tencent.mm',
		// 			action: 'weixin://'
		// 		})) {
		// 		//安装了微信
		// 	} else {
		// 		//未安装微信
		// 		weixin = ''
		// 	}
		// }
		uni.login({
			provider: 'univerify',
			univerifyStyle: { // 自定义登录框样式 
				//参考`univerifyStyle 数据结构`
				"fullScreen": true, // 是否全屏显示，默认值： false
				"backgroundColor": "#ffffff", // 授权页面背景颜色，默认值：#ffffff
				"backgroundImage": "", // 全屏显示的背景图片，默认值："" （仅支持本地图片，只有全屏显示时支持）  
				"icon": {
					"path": "/static/logina.png" // 自定义显示在授权框中的logo，仅支持本地图片 默认显示App logo   
				},
				"closeIcon": {
					"path": "static/xxx.png" // 自定义关闭按钮，仅支持本地图片。 HBuilderX3.3.7+版本支持
				},
				"phoneNum": {
					"color": "#202020" // 手机号文字颜色 默认值：#202020  
				},
				"slogan": {
					"color": "#BBBBBB" //  slogan 字体颜色 默认值：#BBBBBB  
				},
				"authButton": {
					"normalColor": "#FEBF02", // 授权按钮正常状态背景颜色 默认值：#3479f5  
					"highlightColor": "#FEBF02", // 授权按钮按下状态背景颜色 默认值：#2861c5（仅ios支持）  
					"disabledColor": "#EDC955", // 授权按钮不可点击时背景颜色 默认值：#73aaf5（仅ios支持）  
					"textColor": "#fff", // 授权按钮文字颜色 默认值：#ffffff  
					"title": "本机号码一键登录", // 授权按钮文案 默认值：“本机号码一键登录”  
					"borderRadius": "24px" // 授权按钮圆角 默认值："24px" （按钮高度的一半）
				},
				"otherLoginButton": {
					"visible": false, // 是否显示其他登录按钮，默认值：true  
					"normalColor": "", // 其他登录按钮正常状态背景颜色 默认值：透明 
					"highlightColor": "", // 其他登录按钮按下状态背景颜色 默认值：透明 
					"textColor": "#656565", // 其他登录按钮文字颜色 默认值：#656565  
					"title": "其他手机号登录", // 其他登录方式按钮文字 默认值：“其他登录方式”  
					"borderColor": "", //边框颜色 默认值：透明（仅iOS支持）  
					"borderRadius": "0px" // 其他登录按钮圆角 默认值："24px" （按钮高度的一半）
				},
				"privacyTerms": {
					"defaultCheckBoxState": false, // 条款勾选框初始状态 默认值： true
					"uncheckedImage": "", // 可选 条款勾选框未选中状态图片（仅支持本地图片 建议尺寸 24x24px）(3.2.0+ 版本支持)   
					"checkedImage": "", // 可选 条款勾选框选中状态图片（仅支持本地图片 建议尺寸24x24px）(3.2.0+ 版本支持)   
					"checkBoxSize": 18, // 可选 条款勾选框大小，仅android支持
					"textColor": "#BBBBBB", // 文字颜色 默认值：#BBBBBB  
					"termsColor": "#FEBF02", //  协议文字颜色 默认值： #5496E3   
					"prefix": "我已阅读并同意", // 条款前的文案 默认值：“我已阅读并同意”  
					"suffix": "并使用本机号码登录", // 条款后的文案 默认值：“并使用本机号码登录”  
					"privacyItems": [ // 自定义协议条款，最大支持2个，需要同时设置url和title. 否则不生效  
						// {
						// 	"url": "https://admin.wxxtop.com/yszc", // 点击跳转的协议详情页面  
						// 	"title": "用户隐私协议" // 协议名称   
						// }
					]
				},
				"buttons": { // 自定义页面下方按钮仅全屏模式生效（3.1.14+ 版本支持）
					"iconWidth": "40px", // 图标宽度（高度等比例缩放） 默认值：45px
					"list": [
						// 	{
						// 	"provider": "apple",
						// 	iconPath: "/static/appleLogin.png" // 图标路径仅支持本地图片
						// }, {
						// 	"provider": "weixin",
						// 	"iconPath": weixin // 图标路径仅支持本地图片
						// },
					]
				}
			},
			success: (res) => { // 登录成功
				console.log(res.authResult); // {openid:'登录授权唯一标识',access_token:'接口返回的 token'}
				this.getPhone(res.authResult)
			},
			fail: (res) => { // 登录失败
				console.log(res)
				// this.getxy()
				// setTimeout(() => {
				// 	if (res.code == 30002) { //其他手机号登录
				// 		uni.navigateTo({
				// 			url: '/pages/share/phoneLogin/phoneLogin'
				// 		})
				// 		uni.closeAuthView()
				// 	} else if (res.code == 30008) {
				// 		if (res.index == 0) { //apple登录
				// 			this.appleLogin()
				// 		} else if (res.index == 1) { //微信登录
				// 			this.login()
				// 		}
				// 	}
				// }, 500)
			}
		})
	},
	getPhone(e) { //通过云函数获取手机号
		console.log(e, 3333);
		uniCloud.callFunction({
			name: 'getPhoneNumber', // 你的云函数名称
			data: {
				'access_token': e.access_token, // 客户端一键登录接口返回的access_token
				'openid': e.openid // 客户端一键登录接口返回的openid
			}
		}).then(res => {
			console.log(res.result.data.phoneNumber);
			this.keyLog(res.result.data.phoneNumber)
			uni.closeAuthView()
			// 登录成功，可以关闭一键登录授权界面了
		}).catch(err => {
			// 处理错误
			// this.$refs.uToast.show({
			// 	type: 'error',
			// 	message: "登录失败",
			// })
			uni.showToast({
				title: '登录失败',
				duration: 2500,
				icon: 'none'
			});
			uni.closeAuthView()
		})
	},
	keyLog(tel) { //获取手机号登录=>一键登录
		console.log({
			type: 9,
			tel: tel
		});
		api.login({
			type: 9,
			tel: tel
		}).then(res => {
			console.log(res);
			if (res.code == 200) {
				uni.setStorage({
					key: 'token',
					data: res.data.token,
					success: () => {
						if (res.data.user.user_index_detailed_information.hhuser_id == 0 &&
							res.data.user.parent_id == 0) {
							this.bdhhrUser()
							this.binding()
						}
						uni.setStorage({
							key: 'user',
							data: res.data.user,
							success: () => {
								this.newUserinfo()
								uni.showToast({
									title: '登陆成功',
									icon: 'none',
									success: () => {
										uni.switchTab({
											url: '/pages/share/my/my'
										})
									}
								});
							}
						})
					}
				})
			} else {
				uni.showToast({
					title: res.message,
					duration: 2500,
					icon: 'none'
				});
			}
			uni.closeAuthView()
		})
	},

	//是否勾选授权
	getxy() {
		uni.getCheckBoxState({
			success: (res) => {
				is_check = res.state
				console.log(res.state) // Boolean 用户是否勾选了选框
				console.log(res.errMsg)
			},
			fail: (res) => {
				console.log(res.errCode)
				console.log(res.errMsg)
			}
		})
	},
	appleLogin() { //apple登录
		console.log('登录')
		if (is_check) {
			uni.login({
				provider: 'apple',
				success: res => {
					uni.getUserInfo({
						provider: 'apple',
						success: info => {
							// 获取用户信息成功, info.authResult中保存登录认证数据
							console.log(info)
							let obj = {
								type: 8,
								openId: info.userInfo.openId,
								fullName: info.userInfo.fullName,
								authorizationCode: info.userInfo.authorizationCode,
								identityToken: info.userInfo.identityToken,
								realUserStatus: info.userInfo.realUserStatus,
							}
							this.appleLoginPost(obj)

						}
					});
				},
				fail: err => {
					console.log('登录失败')
					// this.$refs.uToast.show({
					// 	type: 'error',
					// 	message: "登陆授权失败",
					// })
					uni.showToast({
						title: '登陆授权失败',
						duration: 2500,
						icon: 'none'
					});
				}
			});
		} else {
			uni.showToast({
				title: '请先阅读勾选隐私协议',
				icon: 'none',
				duration: 2000,
			});
		}
	},
	appleLoginPost(e) { //苹果登录请求
		// console.log(e);
		api.login(e).then(res => {
			console.log(res);
			if (res.code == 200) {
				this.isTel(res)
			} else if (res.code == 201) { //上架用
				uni.setStorage({
					key: 'token',
					data: res.data.token,
					success: () => {
						uni.setStorage({
							key: 'user',
							data: res.data.user,
							success: () => {
								this.newUserinfo()
								uni.showToast({
									title: '登陆成功',
									icon: 'none',
									success: () => {
										uni.switchTab({
											url: '/pages/share/my/my'
										})
									}
								});
							}
						})
					}
				})
			} else {
				// this.$refs.uToast.show({
				// 	type: 'error',
				// 	message: res.message,
				// })
				uni.showToast({
					title: res.message,
					duration: 2500,
					icon: 'none'
				});
			}
			uni.closeAuthView()
		})
	},
	isTel(resa) { //ios登录 判断是否有手机号
		if (resa.data.user.user_index_detailed_information.tel) {
			uni.setStorage({
				key: 'token',
				data: resa.data.token,
				success: () => {
					if (resa.data.user.user_index_detailed_information.hhuser_id == 0 &&
						resa.data.user.parent_id == 0) {
						this.bdhhrUser()
						this.binding()
					}
					uni.setStorage({
						key: 'user',
						data: resa.data.user,
						success: () => {
							this.newUserinfo()
							uni.showToast({
								title: '登陆成功',
								icon: 'none',
								success: () => {
									uni.switchTab({
										url: '/pages/share/my/my'
									})
								}
							});
						}
					})
				}
			})
		} else {
			uni.setStorage({
				key: 'tokena',
				data: resa.data.token,
				success: () => {
					uni.showToast({
						title: '请绑定手机号',
						icon: 'none',
						duration: 2000,
						success: () => {
							// this.preLogin()
							uni.navigateTo({
								url: '/pages/share/bindingPhone/bindingPhone'
							})
						}
					});
				}
			})
		}
	},

	//微信登录
	login() { //登录
		uni.$u.throttle(this.logina, 1000)
	},
	logina() {
		let that = this
		if (is_check) {
			uni.getProvider({
				service: 'oauth',
				success: (res) => {
					// console.log(res.provider);
					//支持微信、qq和微博等
					if (~res.provider.indexOf('weixin')) {
						uni.login({
							provider: 'weixin',
							success: (loginRes) => {
								console.log("App微信获取用户信息成功", loginRes);
								uni.request({
									url: "https://api.weixin.qq.com/sns/userinfo?access_token=" +
										loginRes.authResult.access_token +
										"&openid=" + loginRes.authResult.openid,
									method: 'GET',
									dataType: 'json',
									header: {
										'content-type': 'application/x-www-form-urlencoded' // 默认值
									},
									success: (res) => {
										// console.log('【登录回调】', res)
										// this.loginb(res)
										// that.loginb()
										api.login({
											type: 7,
											nickname: res.data.nickname,
											image: res.data.headimgurl,
											openid: res.data.openid,
											province: '',
											city: '',
											area: ''
										}).then(
											resa => {
												if (resa.code == 200) {
													console.log(resa)
													if (resa.data.user
														.user_index_detailed_information
														.tel) {
														uni.setStorage({
															key: 'token',
															data: resa
																.data
																.token,
															success: () => {
																if (resa
																	.data
																	.user
																	.user_index_detailed_information
																	.hhuser_id ==
																	0 &&
																	resa
																	.data
																	.user
																	.parent_id ==
																	0
																) {
																	if (uni
																		.getStorageSync(
																			'userId'
																		)
																	) {
																		api.binding(
																				uni
																				.getStorageSync(
																					'userId'
																				)
																			)
																			.then(
																				res => {
																					// console.log(res);
																					if (res
																						.code ==
																						200
																					) {
																						uni.showToast({
																							title: '绑定成功',
																							icon: 'none',
																							duration: 1500
																						});
																					} else {
																						uni.showToast({
																							title: res
																								.message,
																							icon: 'none',
																							duration: 1500
																						});
																					}
																				}
																			)
																	}
																	if (uni
																		.getStorageSync(
																			'user_id'
																		)
																	) {
																		api.hhuser({
																				id: uni
																					.getStorageSync(
																						'user_id'
																					)
																			})
																			.then(
																				res => {
																					console
																						.log(
																							res
																						);
																					if (res
																						.code ==
																						200
																					) {
																						uni.showToast({
																							title: '绑定成功',
																							icon: 'none',
																							duration: 1500
																						});
																					} else {
																						uni.showToast({
																							title: res
																								.message,
																							icon: 'none',
																							duration: 1500
																						});
																					}
																				}
																			)
																	}
																}
																uni.setStorage({
																	key: 'user',
																	data: resa
																		.data
																		.user,
																	success: () => {
																		api.newUse({
																				client_id: clientInfo
																					.clientid
																			})
																			.then(
																				res => {
																					console
																						.log(
																							res
																						);
																				}
																			)
																		uni.showToast({
																			title: '登陆成功',
																			icon: 'none',
																			success: () => {
																				uni.switchTab({
																					url: '/pages/share/my/my'
																				})
																			}
																		});
																	}
																})

															}
														})
													} else {
														uni.setStorage({
															key: 'tokena',
															data: resa
																.data
																.token,
															success: () => {
																uni.showToast({
																	title: '请绑定手机号',
																	icon: 'none',
																	duration: 2000,
																	success: () => {
																		// this.preLogin()
																		uni.navigateTo({
																			url: '/pages/share/bindingPhone/bindingPhone'
																		})
																	}
																});
															}
														})

													}
												} else {
													uni.showToast({
														title: resa
															.message,
														duration: 2500,
														icon: 'none'
													});
												}
												uni.closeAuthView()
											})
									},
								})
							},
							fail: function(res) {
								console.log("App微信获取用户信息失败", res);
							}
						})
					}
				}
			});
		} else {
			uni.showToast({
				title: '请先阅读勾选隐私协议',
				icon: 'none',
				duration: 2000
			});
		}
	},
	loginb(res) { //绑定关系
		api.login({
			type: 7,
			nickname: res.data.nickname,
			image: res.data.headimgurl,
			openid: res.data.openid,
			province: '',
			city: '',
			area: ''
		}).then(
			resa => {
				if (resa.code == 200) {
					console.log(resa)
					if (resa.data.user.user_index_detailed_information.tel) {
						uni.setStorage({
							key: 'token',
							data: resa.data.token,
							success: () => {
								if (resa.data.user.user_index_detailed_information.hhuser_id ==
									0 &&
									resa.data.user.parent_id == 0) {
									this.bdhhrUser()
									this.binding()
								}
								uni.setStorage({
									key: 'user',
									data: resa.data.user,
									success: () => {
										this.newUserinfo()
										uni.showToast({
											title: '登陆成功',
											icon: 'none',
											success: () => {
												uni.switchTab({
													url: '/pages/share/my/my'
												})
											}
										});
									}
								})

							}
						})
					} else {
						uni.setStorage({
							key: 'tokena',
							data: resa.data.token,
							success: () => {
								uni.showToast({
									title: '请绑定手机号',
									icon: 'none',
									duration: 2000,
									success: () => {
										// this.preLogin()
										uni.navigateTo({
											url: '/pages/share/bindingPhone/bindingPhone'
										})
									}
								});
							}
						})

					}
				} else {
					uni.showToast({
						title: resa
							.message,
						duration: 2500,
						icon: 'none'
					});
				}
				uni.closeAuthView()
			})
	},
	bdhhrUser() { //绑定合伙人
		console.log(111);
		if (uni.getStorageSync('user_id')) {
			api.hhuser({
				id: uni.getStorageSync('user_id')
			}).then(res => {
				console.log(res);
				if (res.code == 200) {
					uni.showToast({
						title: '绑定成功',
						icon: 'none',
						duration: 1500
					});
				} else {
					uni.showToast({
						title: res.message,
						icon: 'none',
						duration: 1500
					});
				}
			})
		}
	},
	binding() { //绑定上下级
		console.log(222);
		if (uni.getStorageSync('userId')) {
			api.bindinga(uni.getStorageSync('userId')).then(res => {
				// console.log(res);
				if (res.code == 200) {
					uni.showToast({
						title: '绑定成功',
						icon: 'none',
						duration: 1500
					});
				} else {
					uni.showToast({
						title: res.message,
						icon: 'none',
						duration: 1500
					});
				}
			})
		}
	},
	newUserinfo() { //获取最新用户信息
		// console.log(clientInfo.clientid);
		api.newUse({
			client_id: clientInfo.clientid
		}).then(res => {
			console.log(res);
		})
	},
}
